#include <iostream>
#include <algorithm>
#include <cmath>
#include <set>

using namespace std;

char tochar(int i)
{
    return i + '0';
}

int toint(char c)
{
    return c - '0';
}

char mod2(string str)
{
    return tochar(toint(str.back()) % 2);
}

string div2(string str)
{
    string ret = str;
    int i, n;
    n = 0;
    for (i = 0; i < str.size() - 1; i++)
    {
        ret[i + 1] += toint(ret[i]) % 2 * 10;
        ret[i] = tochar(toint(ret[i]) / 2); 
    }
    ret[i] = tochar(toint(ret[i]) / 2);
    for (i = 0; i < ret.size() - 1 && ret[i] == '0'; i++);
    ret = ret.substr(i, ret.size() - i);
    return ret;
}

string addn(string str, string n)
{
    string temp;
    int i, t;
    if (str.size() < n.size())
    {
        temp = str;
        str = n;
        n = temp;
    }
    
    t = 0;
    for (i = str.size() - 1; i >= 0; i--)
    {
        if (n.size()) 
            t += toint(str[i]) + toint(n.back()), n.pop_back();
        else
            t += toint(str[i]);
        
        str[i] = tochar(t % 10);
        t /= 10;
    }
    if (t)
    {
        str.insert(str.begin(), tochar(t));
    }
    
    return str;
}

string tobin(string s)
{
    string ret;

    while (!(s.size() == 1 && s[0] == '0'))
    {
        ret.insert(ret.begin(), mod2(s));
        s = div2(s);
        // cout << s << "-" << ret << " ";
    }
    // cout << ret << " ";
    if (!ret.size()) ret.push_back('0');
    
    return ret;
}

string pow2n(int n)
{
    string ret = "1";
    int i, j, t;
    for (i = 0; i < n; i++)
    {
        t = 0;
        for (j = ret.size() - 1; j > 0; j--)
        {
            t += toint(ret[j]) * 2;
            ret[j] = tochar(t % 10);
            t /= 10;
        }
        t += toint(ret[0]) * 2;
        ret[0] = tochar(t % 10);
        if (t >= 10)
        {
            ret.insert(ret.begin(), '1');
        }
    }
    return ret;
}

string todec(string s)
{
    string ret = "0";
    char p;
    int i;

    for (i = 0; i < s.size(); i++)
    {
        if (s[i] == '1')
        {
            ret = addn(ret, pow2n(s.size() - 1 - i));
            // cout << s << "-" << pow2n(s.size() - 1 - i) << "-" << ret << " \n";
        }
    }

    return ret;
}

int main(int argc, char const *argv[])
{
    string *n;
    int t, i;
    cin >> t;
    n = new string[t];

    for (i = 0; i < t; i++) cin >> n[i];
    for (i = 0; i < t; i++) n[i] = tobin(n[i]);
    for (i = 0; i < t; i++) n[i].substr(0, 334);
    for (i = 0; i < t; i++) reverse(n[i].begin(), n[i].end());
    for (i = 0; i < t; i++) n[i] = todec(n[i]);
    
    for (i = 0; i < t; i++)
    {
        cout << (i ? "\n" : "")
            << "case #"
            << i
            << ":\n"
            << n[i];
    }

    return 0;
}
